package com.栈;

import java.util.HashMap;
import java.util.Map;
import java.util.Stack;

/**
 * 给定一个只包括 '('，')'，'{'，'}'，'['，']' 的字符串，判断字符串是否有效。
 */
public class 有效的括号2 {
    static class Solution {
        private Map<Character,Character> map  ;
        public Solution() {
            map = new HashMap<Character, Character>(){
                { put('}','{');put(']','[');put(')','('); }
            };

        }

        public boolean isValid(String s) {
            Stack<Character> stack = new Stack<>();
           for(int i = 0;i<s.length();i++){
               if(map.containsKey(s.charAt(i))){
                   Character pop = stack.isEmpty() ? '#' : stack.pop();
                   if(pop.equals(map.get(s.charAt(i)))){

                   }
                   else{
                       return false;
                   }
               }
               else{
                   stack.push(s.charAt(i));
               }

           }

            return stack.isEmpty();

        }


        public static void main(String[] args) {
            Solution solution = new Solution();
            String s = "([])";
            System.out.println(solution.isValid(s));
        }
    }
}
